package com.sx.pipeline.repos.local

import com.sx.pipeline.repos.http.res.UserInfoVO
import com.sx.pipeline.repos.local.db.table.PipeFileBeanDO
import io.reactivex.rxjava3.core.Single
import java.io.Serializable

/**
 * @Author: YY
 * @Date: 2022/4/5
 * @Description: TODO
 */
interface ILocalSource: IPipeFile {

    /**
     * 设置Token
     */
    fun setToken(token: String)

    /**
     * 获取Token
     */
    fun getToken(): String?

    /**
     * 清除Token
     */
    fun clearToken()

    /**
     * 设置Token
     */
    fun setNoticeUnreadNum(value: Int)

    /**
     * 获取Token
     */
    fun getNoticeUnreadNum(): Int

    /**
     * 存储用户数据
     */
    fun saveUserData(userInfo: UserInfoVO)

    /**
     * 获取用户数据
     */
    fun getUserData(): UserInfoVO?

    /***
     * 用户身份类型
     */
    fun saveIdentityType(type: Int)

    /**
     * 获取身份类型
     */
    fun getIdentityType(): Int?

    /***
     * 是否设置了支付密码
     */
    fun setPayWord(isset: Boolean)

    /**
     * 获取是否设置了支付密码
     */
    fun getPayWord(): Boolean?

    /**
     * 权限
     */
    fun setPermission(value: Boolean)

    /**
     * 存储 缓存数据
     */
    fun <T: Serializable> saveCacheData(obj: T?)

    /**
     * 获取 缓存数据
     */
    fun<T: Serializable> getCacheData(key:String): T?

    /**
     * 存储 缓存列表数据
     */
    fun <T : Serializable> saveCacheListData(list: List<T>)

    /**
     * 获取 缓存列表数据
     */
    fun <T : Serializable> getCacheListData(key:String): List<T>?


}